package com.zhc.sandbox;

/**
 * @author zj
 * @description 执行配置
 * @date 2024/6/12 07:59
 **/
public class Config {
    // io
    private String inputPath; // stdin
    private String outputPath;// stdout
    private String errorPath;// stderr

    // exe
    private int exeType;// java or c or cpp
    private String exePath;
    // example: `{"java", "-cp", java_exe_dir, "Main", NULL}`
    private String[] exeArgs;/*exe args*/
    // example: `"/home/parallels/Desktop/linux-jdk8/jdk1.8.0_411/bin/java"`
    private String[] exeEnvs;

    // limit
    private long maxRealTime;
    private long maxCpuTime;
    private long maxMemory;
    private long maxStackSize;
    private long maxOutputSize;
    private int maxProcessNumber;

    public String getInputPath() {
        return inputPath;
    }

    public void setInputPath(String inputPath) {
        this.inputPath = inputPath;
    }

    public String getOutputPath() {
        return outputPath;
    }

    public void setOutputPath(String outputPath) {
        this.outputPath = outputPath;
    }

    public String getErrorPath() {
        return errorPath;
    }

    public void setErrorPath(String errorPath) {
        this.errorPath = errorPath;
    }

    public int getExeType() {
        return exeType;
    }

    public void setExeType(int exeType) {
        this.exeType = exeType;
    }

    public String getExePath() {
        return exePath;
    }

    public void setExePath(String exePath) {
        this.exePath = exePath;
    }

    public String[] getExeArgs() {
        return exeArgs;
    }

    public void setExeArgs(String[] exeArgs) {
        this.exeArgs = exeArgs;
    }

    public String[] getExeEnvs() {
        
        return exeEnvs;
    }

    public void setExeEnvs(String[] exeEnvs) {
        this.exeEnvs = exeEnvs;
    }

    public long getMaxRealTime() {
        return maxRealTime;
    }

    public void setMaxRealTime(long maxRealTime) {
        this.maxRealTime = maxRealTime;
    }

    public long getMaxCpuTime() {
        return maxCpuTime;
    }

    public void setMaxCpuTime(long maxCpuTime) {
        this.maxCpuTime = maxCpuTime;
    }

    public long getMaxMemory() {
        return maxMemory;
    }

    public void setMaxMemory(long maxMemory) {
        this.maxMemory = maxMemory;
    }

    public long getMaxStackSize() {
        return maxStackSize;
    }

    public void setMaxStackSize(long maxStackSize) {
        this.maxStackSize = maxStackSize;
    }

    public long getMaxOutputSize() {
        return maxOutputSize;
    }

    public void setMaxOutputSize(long maxOutputSize) {
        this.maxOutputSize = maxOutputSize;
    }

    public int getMaxProcessNumber() {
        return maxProcessNumber;
    }

    public void setMaxProcessNumber(int maxProcessNumber) {
        this.maxProcessNumber = maxProcessNumber;
    }
}